Method and system for testing hardware and software configurations in a computer system

ABSTRACT

A method that includes setting a plurality of switching devices to cause a first plurality of devices to be coupled to a computer system is provided. The method also includes booting the computer system and detecting one or more errors associated with one or more of the first plurality of devices.

[0001] This application relates to co-pending U.S. patent applicationSer. No. 09/333,786, filed on May 20, 1999, entitled “Method andApparatus for Windows-Based Installation for Installing Software onBuild-to-Order Computer Systems”, naming Bobby G. Doran, Jr., BillHyden, and Terry Wayne Liles as inventors.

[0002] This application relates to co-pending U.S. patent applicationSer. No. 09/333,786, filed on Jun. 15, 1999, entitled “Method andApparatus for Testing Custom-Configured Software/Hardware Integration ina Computer Build-to-Order Manufacturing Process”, naming Thomas VrhelJr., Gaston M. Barajas, Paul J. Maia, and W. D. Todd Nix as inventors.

[0003] The co-pending applications are incorporated by reference intheir entirety, and are assigned to the assignee of this application.

BACKGROUND

[0004] The disclosures herein relate generally to computer systems andmoreparticularly to a method and system for testing hardware andsoftware

[0005] Computer systems have numerous connections by which hardwaredevices configurations in a computer system.

[0006] Computer systems have nmerous connections by which hardwaredevices can be added. These connections include expansion slots,input/output (I/O) ports, and drive connections. A computer manufactureror vendor, such as a build-to-order computer manufacturer, may offer itscustomers a choice from any number of different devices for eachconnection in a computer system, resulting in a large number of possiblehardware combinations. In order to minimize time and costs duringsoftware and hardware validation of a computer system, only a smallsubset of these valid hardware combinations can actually be tested. As aresult, many problems or other issues relating various hardware andsoftware configurations arise in the factory.

[0007] It would be desirable to be able to test a large number ofhardware and software configurations of a computer system withoutincurring substantial cost or increasing test durations. Accordingly,what is needed is a method and system for testing hardware and softwareconfigurations in a computer system.

SUMMARY

[0008] One embodiment, accordingly, provides a method that includessetting a plurality of switching devices to cause a first plurality ofdevices to be coupled to a computer system. The method also includesbooting the computer system and detecting one or more errors associatedwith one or more of the first plurality of devices.

[0009] A principal advantage of this embodiment is that variousshortcomings of previous techniques are overcome. For example, a largenumber of hardware and software configurations of a computer system maybe tested without the need to assemble each configuration individually.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010]FIG. 1 is a diagram illustrating an embodiment of a system fortesting hardware and software configurations in a computer system.

[0011]FIG. 2 is a diagram illustrating an embodiment of a system fortesting hardware and software configurations in a computer system.

[0012]FIG. 3 is a flow chart illustrating an embodiment of a method fortesting hardware and software configurations in a computer system.

DETAILED DESCRIPTION

[0013]FIG. 1 is a diagram illustrating an embodiment of a system 10 fortesting hardware and software configurations in a computer system. InFIG. 1, a computer system 100 is coupled to a plurality of switchingdevices 130 a and 130 b and a remote system 194. Switching devices 130 aand 130 b are each coupled to a plurality of devices 140 a, 140 b, and140 c, and 140 d, 140 e, and 140 f, respectively. Devices 140 a, 140 b,and 140 c are coupled to a switching device 150. Switching device 150 iscoupled to a plurality of devices 160 a, 160 b, and 160 c. Devices 140d, 140 e, and 140 f are coupled to a splitter device 170. Splitterdevice 170 is coupled to a plurality of devices 180 a, 180 b, and 180 c.

[0014] System 10 is configured to allow various hardware and softwareconfigurations to be tested on computer system 100. Computer system 100includes a processor 102, a chipset 104, and a non-volatile memory 106such as a CMOS. Non-volatile memory 106 includes a basic input outputsystem (BIOS) (not shown) or a system firmware (not shown) configured tocause computer system 100 to boot or reboot in response to being poweredup or reset. Computer system 100 also includes numerous connections thatallow hardware devices to operate in conjunction with computer system100. These connections include bus slots 110 a, 110 b, 110 c, and 110 d,memory slots 112 a and 112 b, drive slots 114 a and 114 b, parallel port116, serial port 118, Universal Serial Bus (USB) ports 120 a and 120 b,and infrared (IR) port 122. Bus slots 110 a, 110 b, 110 c, and 110 dconnect to a bus 108 of computer system 100 such as a PeripheralComponent Interconnect (PCI) bus and are configured to couple to devicesconfigured to operate using the bus such as video adapters and audioadapters. Memory slots 112 a and 112 b are configured to couple tomemory devices such as RAM and SDRAM. Drive slots 114 a and 114 b areconfigured to couple to hard disk drives, various CD drives, and otherstorage devices. Parallel port 116, serial port 118, and UniversalSerial Bus (USB) ports 120 a and 120 b are configured to couple to anysuitable peripheral devices. IR port 122 is configured to couple to adevice configured to wirelessly communicate with computer system 100.Computer system 100 may also include other connections not shown in FIG.1 such as bus expansion slots, wireless or other types of input/output(I/O) ports, PCMCIA (i.e. PC Card) slots, or other interfaces.

[0015] A manufacturer or vendor of computer system 100 may include anynumber of devices in computer system 100 prior to providing computersystem 100 to a customer. The manufacturer may assemble computer system100 according to a build-to-order manufacturing process where themanufacturer assembles hardware and software components of computersystem 100 according to the specifications of a customer. Based on thenumbers of different devices that may be connected to differentconnections in computer system 100, computer system 100 may be offeredin a large number of hardware configurations by a manufacturer or vendorof computer system 100. In addition, a large number of softwareconfigurations may be offered for each of the hardware configurations asa customer may specify one of a set of operating systems and one or moreof a set of applications to be included in computer system 100.

[0016] In order to test various hardware and software configurations ofcomputer system 100, one or more connections of computer system 100 iscoupled to a switching device, such as switching device 130 a coupled tobus slot 110 a as indicated by reference numeral 128 a. and switchingdevice 130 b coupled to IR port 122 as indicated by reference numeral128 b. Each switching device is coupled to a plurality of devices thatmay be coupled to the connection of computer system 100. For example,switching device 130 a is coupled to devices 140 a, 140 b, and 140 c,and switching device 130 b is coupled to devices 140 d, 140 e, and 140f. Switching device 130 a is configured to selectively cause one ofdevices 140 a, 140 b, or 140 c to be coupled to computer system 100 at atime in response to a signal 192 a from control module 190. Similarly,switching device 130 b is configured to selectively cause one of devices140 d, 140 e, or 140 f to be coupled to computer system 100 at a time inresponse to a signal 192 c from control module 190. The functions andoperation of control module 190 will be described in additional detailbelow.

[0017] Switching devices 130 a and 130 b may be any type of deviceconfigured to selectively enable one of a plurality of devices to becoupled to computer system 100 at a given time. An example of suchdevices includes a conventional switch. Switching devices 130 a and 130b are shown by way of example in FIG. 1. In other embodiments, switchingdevices may be coupled to any number of connections of computer system100.

[0018] A device configured to operate in conjunction with computersystem 100 may also be configured to operate numerous types or models ofsecondary devices. For example, a video adapter coupled to bus slot 110b may be configured to operate different monitors or other displaydevices coupled to the video adapter. To allow these secondary devicesto be tested, a switching device or a splitter device is coupled betweenone or more devices and one or more secondary devices. In FIG. 1, forexample, switching device 150 is coupled to devices 140 a, 140 b, and140 c and devices 160 a, 160 b, and 160 c. Splitter device 170 iscoupled to devices 140 d, 140 e, and 140 f and devices 180 a, 180 b, and180 c. Switching device 150 is configured to selectively cause one ofdevices 140 a, 140 b, or 140 c to be coupled to one of devices 160 a,160 b, or 160 c at a time in response to a signal 192 d from controlmodule 190. Splitter device 170 is configured to cause devices 140 d,140 e, or 140 f to be coupled to devices 180 a, 180 b, or 180 c.

[0019] Switching device 150 may be any type of device configured toselectively enable one of a first plurality of devices to be coupled toone of a second plurality of devices at a given time. An example of suchdevices includes a conventional switch. Switching device 150 is shown byway of example in FIG. 1. In other embodiments, other switching devicesmay be coupled to any number of devices that are coupled to otherswitching devices.

[0020] Splitter device 170 may be any type of device configured toenable a first plurality of devices to be coupled to a second pluralityof devices at a given time. For example, in some testing scenarios, onlyone device in the first plurality and one device in the second pluralityare active (i.e., have power), wherein the splitter connects the activesignals and ignores any signals to/from non-active devices (i.e.,devices that are powered off). Accordingly, splitter device 170 can beindependent of and not coupled to control module 190. Moreover, inpractice, an active device coming off switching device 130 b will drivethe signal to the active secondary device(s) coming off the other sideof splitter device 170. Alternatively, the active secondary device(s)coming off splitter device 170 will drive the signal to the activedevice coming off switching device 130 b. An example of such splitterdevices includes a conventional splitter. Splitter device 170 is shownby way of example in FIG. 1. In other embodiments, other splitterdevices may be coupled to any number of devices that are coupled toother switching devices.

[0021] Although shown as coupled to multiple devices 140 a, 140 b, and140 c in FIG. 1, switching device 150 may be coupled to only one ofdevices 140 a, 140 b, or 140 c in other embodiments. Similarly,switching device 150 may be coupled to only one of devices 160 a, 160 b,or 160 c in other embodiments. In addition, splitter device 170 may becoupled to only one of devices 140 d, 140 e, or 140 f in otherembodiments.

[0022] Control module 190 is configured to communicate with switchingdevices, computer system 100, and remote system 194 in system 10.Control module 190 causes a hardware configuration and a softwareconfiguration of computer system 100 to be selected by providing inputsto switching devices, computer system 100, and/or remote system 194. Inresponse to signal 192 a from control module 190, switching device 130 aselects device 140 a, 140 b, or 140 c to couple to computer system 100.Similarly, switching device 130 b selects device 140 d, 140 e, or 140 fto couple to computer system 100 in response to signal 192 c fromcontrol module 190. In addition, switching device 150 selects device 140a, 140 b, or 140 c to couple to device 160 a, 160 b, or 160 c inresponse to signal 192 d from control module 190.

[0023] The device or devices selected by control module 190 for couplingto computer system 100 or other devices comprise a hardwareconfiguration of computer system 100. For example, control module 190may cause device 140 b and device 140 f to be coupled to computer system100 using switching devices 130 a and 130 b, respectively. In addition,control module 190 may cause device 160 a to be coupled to device 140 busing switching device 150. Splitter device 170 couples devices 180 a,180 b, and 180 c to devices 140 d, 140 e, and 140 f, independently ofcontrol module 190. In this example, the set of devices 140 b, 140 d,140 e, 140 f, 160 a, 180 a, 180 b, and 180 c comprise a hardwareconfiguration of computer system 100. Control module 190 may also causeother devices to be included in a hardware configuration by causingother devices to be coupled to other slots in computer system 100 usingother switching devices (not shown in FIG. 1).

[0024] After a hardware configuration has been selected, computer system100 may be booted or rebooted by a BIOS or system firmware to cause eachdevice in a hardware configuration to be detected and/or tested. TheBIOS or system firmware may then transfer control of computer system 100to an operating system (not shown). The devices may be detected by theBIOS, the system firmware, and/or the operating system executing oncomputer system 100. An indication of the detection and/or operation ofeach device may be stored into a log file on computer system 100 orremote system 194. In addition, one or more errors associated with oneor more devices in the hardware configuration may be detected. Anindication of each error may be stored into a log file on computersystem 100 or remote system 194.

[0025] A computer is “booted” (or “rebooted”) when it initiatesexecution of operating system software (e.g., Microsoft Windows™) inresponse to an event (“boot event”). Such a boot event may be, forexample, a user “turning on” the computer (e.g., the user causingapplication of electrical power to the computer by switching an on/offbutton of the computer). Alternatively, such a boot event may be receiptby the computer of a command to initially execute the operating systemsoftware. For example, the computer may receive such a command from theuser (e.g., through input devices of the computer system), or from acomputer application executed by the computer, or from another computer(e.g., through a network that is connected to the computer). Suchbooting of the computer system may be referred to as a computer systemboot process, or a computer system boot operation.

[0026] Computer system 100 may also cause tests to be performed on oneor more devices of a hardware configuration. These tests may be specificto a device such as by sending video signals to a monitor or by sendingmemory operations to a storage device. The tests may be performed usingcommon application programs or other code modules configured to causedevices to be tested. The results of these tests may be stored into alog file on computer system 100 or remote system 194.

[0027] Subsequent to computer system 100 booting, detecting devices in ahardware configuration, or performing tests on devices in a hardwareconfiguration, control module 190 causes another test configuration tobe set up. This next test configuration includes a different set ofdevices from the previous test configuration, although one or moredevices may be the same in both configurations. After causing the nexttest configuration to be selected, control module 190 causes computersystem 100 to be powered down or reset using a signal 192 b. Wherecomputer system 100 powers down, computer system 100 may automaticallypower up after a predefined time period or may receive a wake-up signalin response to the completion of a configuration change. In response tobeing powered up or being reset, computer system 100 reboots using aBIOS or system firmware. Computer system 100 then repeats the detectionfunctions and/or tests as described above for this hardwareconfiguration. After computer system 100 completes any tests on thishardware configuration, control module 190 may cause additional hardwareconfigurations to be selected and tested. Control module 190 may selecthardware configurations from a list of hardware configurations to betested. The list may be altered or changed by a manufacturer of computersystem 100 to include or not include particular hardware configurations.

[0028] Control module 190 may cause different software configurations tobe tested for each hardware configuration. A software configuration maycomprise a BIOS or a system firmware, an operating system, and/or one ormore applications and may be stored on a storage device (not shown)accessible by computer system 100. The storage device may be one of aplurality of storage devices coupled to a switching device (not shown)that is connected to drive slot 114 a or 114 b. Each of this pluralityof storage devices may include a different software configurationallowing control module 190 to select a software configuration bycausing a storage device that includes the software configuration to becoupled to computer system 100. Alternatively, control module 190 maycause a software image or a set of software components from remotesystem 194 to be stored onto a storage device coupled to computer system100. Control module 190 may select software configurations from a listof software configurations to be tested. The list may be altered orchanged by a manufacturer of computer system 100 to include or notinclude particular software configurations.

[0029] Control module 190 may include any combination of hardware orsoftware components. For example, control module 190 may be a set ofmanual switches that are set by a technician and may include buttons orother devices configured to cause computer system 100 to be powered upand down and/or reset. Control module 190 may also be a program that isexecutable by computer system 100 from a memory in computer system 100.In addition, control module 190 may be a program that is executable bycomputer system 100 from a memory located on remote system 194. Furthercontrol module 190 may be a program that is executable by remote system194. Remote system 194 may control the operation of computer system 100,the switching devices, and the splitter devices using a communicationsnetwork such as the Internet, an intranet, a local area network, a widearea network, a wireless network, or a point-to-point connection. Stillfurther, control module 190 may include a combination of hardware andsoftware components.

[0030] In embodiments where control module 190 comprises a computerprogram product, control module 190 may be stored in an apparatus thatis accessible by computer system 100. Such an apparatus may be a harddisk drive, a CD-ROM, a floppy disk, network storage device, a RAM, orany other suitable storage device.

[0031]FIG. 2 is a diagram illustrating an embodiment of a system fortesting hardware and software configurations in a computer system 200.In FIG. 2, computer system 200 couples to devices on a test rack 210.Test rack 210 includes connections 212, 214, 216, 218, 220, 222, 224,and 226. Each connection may be coupled to a corresponding connection oncomputer system 200 as indicated by example connectors 202, 204, and 206coupling connections 212, 222, and 226 to computer system 200,respectively.

[0032] Each connection 212, 214, 216, 218, 220, 222, 224, and 226 iscoupled to a switching device (not shown) which is coupled to aplurality of devices. Devices 212 a, 212 b, 212 c, 212 d, and 212 e arecoupled to a switching device coupled to connection 212. Devices 214 a,214 b, 214 c, 214 d, and 214 e are coupled to a switching device coupledto connection 214. Devices 216 a, 216 b, 216 c, 216 d, and 216 e arecoupled to a switching device coupled to connection 216. Devices 218 a,218 b, 218 c, 218 d, and 218 e are coupled to a switching device coupledto connection 218. Devices 220 a, 220 b, 220 c, 220 d, and 220 e arecoupled to a switching device coupled to connection 220. Devices 222 a,222 b, 222 c, 222 d, and 222 e are coupled to a switching device coupledto connection 222. Devices 224 a, 224 b, 224 c, 224 d, and 224 e arecoupled to a switching device coupled to connection 224. Devices 226 a,226 b, 226 c, 226 d, and 226 e are coupled to a switching device coupledto connection 226.

[0033] Test rack 210 includes a control panel 230. Control panel 230includes an indicator for each device for each connection 212, 214, 216,218, 220, 222, 224, and 226. The indicator for each device selected aspart of a hardware configuration may be illuminated to allow atechnician to see which devices are being tested at a given time.Control panel 230 may also include manual switch for each connection212, 214, 216, 218, 220, 222, 224, and 226 to allow devices to bemanually selected for testing.

[0034] Test rack 210 includes a communications link 208 to allow testrack 210 to communicate with computer system 200. Communications fromtest rack 210 to computer system 200 may include a signal to causecomputer system 200 to power up, power down, or reset. Communicationsfrom computer system 200 to test rack 210 may include signals to causetest rack 210 to select hardware configurations or provide indicationssuch as errors to a technician using control panel 230. Test rack 210also includes a power adapter 240 to provide power to test rack 210.

[0035]FIG. 3 is a flow chart illustrating an embodiment of a method fortesting hardware and software configurations in a computer system. InFIG. 3, one or more devices are set to a test configuration as indicatedin step 302. The test configuration may include a specified hardwareconfiguration and/or a specified software configuration. The testconfiguration settings are verified as indicated in step 304. The systemis reset as indicated in step 306. The system is booted in the testconfiguration as indicated in step 308. One or more tests are performedon the test configuration as indicated in step 310. The results of theboot and the tests are stored to a log file as indicated in step 312. Adetermination is made as to whether another test configuration isdesired as indicated in step 314. If another test configuration isdesired, then the method continues at step 302. If another testconfiguration is not desired, then the method concludes as indicated.

[0036] As can be seen, the principal advantages of these embodiments arethat various shortcomings of previous techniques are overcome. Forexample, a large number of hardware and software configurations of acomputer system may be tested without the need to assemble eachconfiguration individually.

[0037] Although illustrative embodiments have been shown and described,a wide range of modification, change and substitution is contemplated inthe foregoing disclosure and in some instances, some features of theembodiments may be employed without a corresponding use of otherfeatures. Accordingly, it is appropriate that the appended claims beconstrued broadly and in a manner consistent with the scope of theembodiments disclosed herein.

What is claimed is:
 1. A method comprising: setting a plurality ofswitching devices to cause a first plurality of devices to be coupled toa computer system; booting the computer system; and detecting one ormore errors associated with one or more of the first plurality ofdevices.
 2. The method of claim 1, further comprising: subsequent todetecting the one or more errors, setting the plurality of switchingdevices to cause a second plurality of devices to be coupled to thecomputer system, the second plurality of devices including at least onedevice that is not included in the first plurality of devices.
 3. Themethod of claim 2, further comprising: subsequent to setting theplurality of switching devices to cause the second plurality of devicesto be coupled to the computer system: rebooting the computer system; anddetecting one or more errors associated with one or more of the secondplurality of devices.
 4. The method of claim 1, further comprising:storing the one or more errors into a log file on the computer system.5. The method of claim 1, further comprising: storing the one or moreerrors onto a storage device located remotely from the computer system.6. The method of claim 1, further comprising: setting an additionalswitching device to cause one of a second plurality of devices to becoupled to one of the first plurality of devices.
 7. The method of claim1, further comprising: setting a splitter device to cause a secondplurality of devices to be coupled to the first plurality of devices. 8.The method of claim 1, further comprising: subsequent to booting thecomputer system, performing one or more tests on the computer systemusing the first plurality of devices; and storing results associatedwith the one or more tests into a log file.
 9. A method comprising:setting a first switching device to cause a first one of a firstplurality of devices to be coupled to a computer system; setting asecond switching device to cause a first one of a second plurality ofdevices to be coupled to the computer system; booting the computersystem; detecting the first one of the first plurality of devices usingthe computer system; and detecting the first one of the second pluralityof devices using the computer system.
 10. The method of claim 9, furthercomprising: subsequent to detecting the first one of the first pluralityof devices and the second one of the second plurality of devices,setting the first switching device to cause a second one of the firstplurality of devices to be coupled to the computer system.
 11. Themethod of claim 10, further comprising: subsequent to setting the firstswitching device to cause the second one of the first plurality ofdevices to be coupled to the computer system; rebooting the computersystem; and detecting the second one of the first plurality of devicesusing the computer system.
 12. The method of claim 9, furthercomprising: detecting an error associated with detecting the first oneof the first plurality of devices; and storing the error into a log fileon the computer system.
 13. The method of claim 9, further comprising:detecting an error associated with detecting the first one of the firstplurality of devices; and storing the error into a log file on a storagedevice located remotely from the computer system.
 14. The method ofclaim 9, further comprising: setting a third switching device to causeone of a third plurality of devices to be coupled to the first one ofthe first plurality of devices.
 15. The method of claim 9, furthercomprising: setting a splitter device to cause a third plurality ofdevices to be coupled to the first plurality of devices.
 16. The methodof claim 9, further comprising: subsequent to detecting the first one ofthe first plurality of devices and the first one of the second pluralityof devices, performing one or more tests on the computer system usingthe first one of the first plurality of devices and the first one of thesecond plurality of devices; and storing results associated with the oneor more tests into a log file.
 17. A computer program productcomprising: a computer program processable by a computer system forcausing the computer system to: set a first switching device to cause afirst one of a first plurality of devices to be coupled to the computersystem; set a second switching device to cause a first one of a secondplurality of devices to be coupled to the computer system; reboot thecomputer system; detect the first one of the first plurality of devices;and detect the first one of the second plurality of devices; andapparatus from which the computer program is accessible by the computersystem.
 18. The computer program product of claim 17, wherein thecomputer program is for causing the computer system to: subsequent todetecting the first one of the first plurality of devices and the secondone of the second plurality of devices, set the first switching deviceto cause a second one of the first plurality of devices to be coupled tothe computer system.
 19. The computer program product of claim 18,wherein the computer program is for causing the computer system to:subsequent to setting the first switching device to cause the second oneof the first plurality of devices to be coupled to the computer system;reboot the computer system; and detect the second one of the firstplurality of devices using the computer system.
 20. The computer programproduct of claim 17, wherein the computer program is for causing thecomputer system to: detect an error associated with detecting the firstone of the first plurality of devices; and store the error into a logfile on the computer system.
 21. The computer program product of claim17, wherein the computer program is for causing the computer system to:detect an error associated with detecting the first one of the firstplurality of devices; and store the error into a log file on a storagedevice located remotely from the computer system.
 22. The computerprogram product of claim 17, wherein the computer program is for causingthe computer system to: set a third switching device to cause one of athird plurality of devices to be coupled to the first one of the firstplurality of devices.
 23. The computer program product of claim 17,wherein the computer program is for causing the computer system to: seta splitter device to cause a third plurality of devices to be coupled tothe first plurality of devices.
 24. The computer program product ofclaim 17, wherein the computer program is for causing the computersystem to: subsequent to detecting the first one of the first pluralityof devices and the first one of the second plurality of devices, performone or more tests on the computer system using the first one of thefirst plurality of devices and the first one of the second plurality ofdevices; and storing results associated with the one or more tests intoa log file.
 25. A system comprising: a computer system that includes afirst connection and a second connection; a first switching devicecoupled to the first connection; a first plurality of devices coupled tothe first switching device; a second switching device coupled to thesecond connection; a second plurality of devices coupled to the secondswitching device; the first switching device able to be set to cause afirst one of the first plurality of devices to be coupled to thecomputer system; the second switching device able to be set to cause afirst one of the second plurality of devices to be coupled to thecomputer system; and the computer system configured to detect the firstone of the first plurality of devices and the first one of the secondplurality of devices in response to the first switching device being setto cause the first one of the first plurality of devices to be coupledto the computer system and the second switching device being set tocause the first one of the second plurality of devices to be coupled tothe computer system and in response to being booted.
 26. The system ofclaim 25, further comprising: a control module configured to cause thefirst switching device to be set to cause the first one of the firstplurality of devices to be coupled to the computer system, and thecontrol module configured to cause the second switching device to be setto cause the first one of the second plurality of devices to be coupledto the computer system.
 27. The system of claim 26, wherein the controlmodule includes at least one hardware component.
 28. The system of claim26, wherein the control module includes at least one software component.29. The system of claim 26, wherein the computer system includes thecontrol module.
 30. The system of claim 26, wherein the control moduleis located externally from the computer system.
 31. The system of claim26, wherein the control module is configured to cause the computersystem to boot subsequent to causing the first switching device to beset and causing the second switching device to be set.
 32. The system ofclaim 26, wherein the control module is configured to cause the firstswitching device to be set to cause a second one of the first pluralityof devices to be coupled to the computer system, and wherein the controlmodule is configured to cause the second switching device to be set tocause a second one of the second plurality of devices to be coupled tothe computer system.
 33. The system of claim 32, wherein the controlmodule is configured to cause the computer system to be rebootedsubsequent to causing the first switching device to be set to cause thesecond one of the first plurality of devices to be coupled to thecomputer system.
 34. The system of claim 25, further comprising: a thirdswitching device coupled to the first plurality of devices; and a thirdplurality of devices coupled to the third switching device; the thirdswitching device able to be set to cause one of the third plurality ofdevices to be coupled to the first one of the first plurality ofdevices.
 35. The system of claim 25, further comprising: a splitterdevice coupled to the first plurality of devices; and a third pluralityof devices coupled to the splitter device; the splitter device able tobe set to cause the third plurality of devices to be coupled to thefirst plurality of devices.